package com.library.service;

import com.library.entity.User;
import com.library.util.ResultUtil;

import java.util.Map;

/**
 * 用户认证服务接口
 * 定义登录、注销等认证相关操作
 */
public interface UserAuthService {

    /**
     * 用户登录
     * @param username 用户名
     * @param password 密码
     * @return 包含Token和用户信息的结果
     */
    ResultUtil<Map<String, Object>> login(String username, String password);

    /**
     * 用户注销
     * @param token 要注销的Token
     */
    void logout(String token);

    /**
     * 验证Token是否有效
     * @param token 待验证的Token
     * @return 验证结果（true：有效，false：无效）
     */
    boolean validateToken(String token);

    /**
     * 从Token中获取用户名
     * @param token Token字符串
     * @return 用户名
     */
    String getUsernameFromToken(String token);
}
